]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
cldr2json: Do not overwrite existing files
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 27 Mar 2020 15:33:48 +0000 (16:33 +0100)
committerFlorian Müllner <florian.muellner@gmail.com>
Fri, 27 Mar 2020 16:44:27 +0000 (16:44 +0000)
We had various requests to improve existing OSK layouts, but
haven't accepted them so far as any changes would be overridden
when regenerating the layouts.

However as the upstream layouts at http://www.unicode.org are
extremely slow to update(*), we shouldn't block all improvements.

So instead of letting the update script override all existing
layouts, just make it import new layouts.

(*) not their fault, as the android layouts are a downstream to Google

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1136

data/cldr2json/cldr2json.py

index 7d6d71792d8aa813780fd95ec314f6694b81387f..49a3809cdc9e42ef598637459e145ba4a80325a9 100755 (executable)
@@ -165,8 +165,12 @@ def convert_file(source_file, destination_path):
         return False
     destination_file = os.path.join(destination_path, xkb_name + ".json")
 
-    with open(destination_file, 'w', encoding="utf-8") as dest_fd:
-        json.dump(root, dest_fd, ensure_ascii=False, indent=2, sort_keys=True)
+    try:
+        with open(destination_file, 'x', encoding="utf-8") as dest_fd:
+            json.dump(root, dest_fd, ensure_ascii=False, indent=2, sort_keys=True)
+    except FileExistsError as e:
+        logging.info("File %s exists, not updating", destination_file)
+        return False
 
     logging.debug("written %s", destination_file)